#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/wait.h>

int main()
{
    pid_t id=fork();
    if(id<0)
    {
        perror("fork");
        exit(1);
    }
    else if(id==0)//子进程
    {
        int cen=5;
        while(cen)
        {
            printf("I am child:%d\n",cen--);
            sleep(1);
        }
        exit(111);
    }
    else //父进程
    {
        int status=0;
        pid_t result=waitpid(id,&status,0);//阻塞等待子进程状态变化
        if(result>0)
        {
            if(WIFEXITED(status))
            {
                //父进程等待成功
                printf("子进程执行完毕，子进程退出码：%d\n",WEXITSTATUS(status));
            }
            else 
            {
                printf("子进程异常退出：%d\n",WIFEXITED(status));//此处是在子进程异常退出时打印看看状态
            }
        }

    }
    return 0;
}
